iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

30天小老闆系列(1)--線上排班小工具系列 第 13

DAY13 資料室--Vuex載荷Payload

  • 分享至 

  • xImage
  •  

前言

為什麼要特別提一下 Payload
是因為像 mutationsactions,其實都只能傳一個自定參數進去,如果有多個參數要使用時,可能就會跳錯,怕有人也遇到相同的困擾,所以特別提一聲。

舉例來說,像下面這個範例 state.count += x,只有傳遞 x 一個參數是沒問題的。

// ...
mutations: {
  increment (state, x) {
    state.count += x
  }
}

那如果是這樣,傳了 x, y兩個參數,就會遇到 undefined 的跳錯囉!

// ...
mutations: {
  increment (state, x, y) {
    state.count += x * y
  }
}

如果今天我們需要傳入多個參數到底怎麼辦呢?就可以使用 Payload(載荷)了。
使用方式其實很簡單,就是將要傳入的參數封裝成物件,如下範例

mutationspayload 作為傳入的參數

// ...
mutations: {
  increment (state, payload) {
    state.count += payload.x * payload.y
  }
}

使用時傳入物件 {x: 5, y: 10}

store.commit('increment', {
  x: 5,
  y: 10
})

這樣就可以囉,是不是很簡單呢?
雖然看起來很簡單,但其實這是運用到ES6的新特性-解構賦值,實際上我對此也是懵懵懂懂,所以無法細說
若有興趣想深入研究的捧由,可以以此關鍵字去搜尋研究,也歡迎與我分享囉!


上一篇
DAY12 資料室--Vuex輔助函數讓代碼更簡潔
下一篇
DAY14 資料室--Vuex項目結構
系列文
30天小老闆系列(1)--線上排班小工具30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言